package com.financing.platform.dto;

import java.math.BigDecimal;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;

import org.jfree.util.Log;
import org.springframework.format.annotation.DateTimeFormat;




/**
 * @author Mars
 * @createDate 2014年7月10日
 * admin_api_1.5 
 * 添加“大小配比类型”和“大小配比说明”
 * lisu
 */
public class ProjectDTO extends BaseDTO{

	private static final long serialVersionUID = 16597129840992541L;

	/**
	 * 产品id
	 */
	private Integer id;
	
	/**
	 * 产品供应方ID
	 */
	private Integer pAccessId;
	/**
	 * 产品供应方 对接人公司名称（冗余 供应方表 ）
	 */
	private String pAccessCompany;
	/**
	 * 产品供应方 对接人姓名
	 */
	private String pAccessName;
	/**
	 * 产品供应方 对接人手机号
	 */
	private String pAccessMobile;
	
	/**
	 * 产品负责人
	 */
	private String userName;
	
	/**
	 * 期数
	 */
	private String pPeriods;
	
	/**
	 * 产品代码
	 */
	private String pCode;
	/**
	 * 产品关联代码
	 */
	private String pLinkCode;
	
	/**
	 * 产品名称
	 */
	private String pName;
	
	/**
	 * 产品名称(搜索专用)
	 */
	private String pSearchName;
	
	/**
	 * 产品全称
	 */
	private String  pFullName;
	
	/**
	 * 产品类型 01:基金、02:信托
	 */
	private String pType;
	
	/**
	 * 产品类型 01:基金、02:信托 
	 */
	private String pTypeList;
	
	/**
	 * 发行规模（当期）
	 */
	private BigDecimal pIssuingScale;
	/**
	 * 总发行规模
	 */
	private BigDecimal pAllIssuingScale;
	
	/**
	 * 产品起购金额
	 */
	private BigDecimal pMinimumAmount;
	
	/**
	 * 产品期限
	 */
	private Integer pDueTime;

	/**
	 * 产品期限-描述
	 */
	private String pDueTimeDes;
	
	/**
	 * 预期销售金额
	 */
	private BigDecimal pExpectSubscriptionAmount;
	
	/**
	 * 预期销售分额 预期份额=预期认购金额/每份金额
	 */
	private BigDecimal pExpectSubscriptionShare;
	
	/**
	 * 实际销售金额
	 */
	private BigDecimal pRealSubscriptionAmount;
	
	/**
	 * 实际销售分额 预期份额=预期认购金额/每份金额
	 */
	private BigDecimal pRealSubscriptionShare;
	
	/**
	 * 投资行业  01:房地产类  02:融资租赁 03:基础设施04:其他
	 */
	private String pInvestType;
	
	/**
	 * 项目所属     募集金额的需求方
	 */
	private String pProjectOwner;
	
	/**
	 * 发行机构
	 */
	private String pInvestOwner;
	/**
	 * 发行机构id(所属公司id)
	 */
	private Integer pInvestOwnerId;
	
	/**
	 * 产品等级
	 */
	private String pLevel;
	
	/**
	 *  开始正式销售的日期
	 */
	private Date pSaleTimeStart;
	
	/**
	 *  开始正式销售的日期str
	 */
	private String pSaleTimeStartStr;
	
	/**
	 * 结束正式销售的日期
	 */
	private Date pSaleTimeEnd;
	
	/**
	 * 结束正式销售的日期str
	 */
	private String pSaleTimeEndStr;
	
	
	/**
	 * 产品成立时间
	 */
	private Date pEstablishmentTime;
	
	/**
	 * 产品成立时间str
	 */
	private String pEstablishmentTimeStr;
	
	
	/**
	 * 销售状态 01:未开始02:预售中，03:募集中 04:已募满
	 */
	private String pSaleStatus;
	
	
	/**
	 * 产品开放频率
	 */
	private String pFrequencyOpen;
	
	/**
	 * 对于起息方式和类型的说明
	 */
	private String pInstructionsWork;
	
	/**
	 * 付息方式  01:按月付息、02:按季付息、03:按半年付息、04:按年付息、05:到期还本付息
	 */
	private String pPaymentInterestType;
	
	/**
	 * 产品简介
	 */
	private String pSummary;
	
	/**
	 * 项目期限的提前结束  0:否  1:是
	 */
	private String pEndEarlyIdentification;
	
	
	/**
	 * 累进追加金额的最小单位
	 */
	private BigDecimal pProgressiveAmount;
	
	/**
	 * 产品已经销售总额（所有销售渠道之和）
	 */
	private BigDecimal pAllSubscriptionAmount;
	
	/**
	 * 产品购买总人数（所有销售渠道之和）
	 */
	private Integer pAllSubscriptionNum;
	
	/**
	 * 产品“一句话”概述
	 */
	private String pProductSummary;
	
	/**
	 * 募集进度说明
	 */
	private String pRecruitmentSummary;
	
	/**
	 * 收益类型字段：01固定,02浮动两种
	 */
	private String pProfitType;
	
	private String pPublicArea;//发行地区（原数据）

	private String pBelongArea;//所属地区（省份和直辖市）


	
	/**
	 * 发布过程状态
	 */
	private String status;
	
	/**
	 * 发布状态，1未发布，2已发布
	 */
	private String pPublicStatus;
	
	/**
	 * 担保方介绍
	 */
	private String pAboutGuarantor;
	
	/**
	 * 融资方介绍
	 */
	private String pAboutFinancingParty;
	
	/**
	 * 接收富文本值
	 */
	private String editorValue;
	
	/**
	 * 产品图片地址
	 */
	private String pImageUri;
	
	
	/**
	 * 更新时间（开始）
	 */
	private String  updateDateStart;
	/**
	 * 更新时间（结束）
	 */
	private String  updateDateEnd;
	
	/**
	 * 大小配比类型(01:小额畅打,02:已配出小额,03:严格配比,04:全大额
	 */
	private String  pSizeRatioType;
	
	private String tjzls;
	
	/**
	 * 大小配比说明
	 */
	private String  pSizeRatioExplain;
	
	private ProjectExpandDTO projectExpandDTO;
	
	private String outProductId;//外场产品id
	
	private String otherInstructions;//其他说明
	
	private Boolean flagBaoxiao;//是否包销
	
	private Boolean flagZhutui;//是否主推
	
	private Boolean flagZhiding;//是否置顶
		/**
	 * 核心价显示的标志,假如无权限查看就为1，没权限查看就为其他的;
	 * @return
	 */
	private Integer target;
	
	private Boolean flagBidding;//是否允许竞价
	
	private String activitiesCode;//活动code
	
	private Integer videoId;//显示（当前视频的id）

	private String ids;//批量id
	
	
	//审批  产品新增字段   	
	private String addFirstProject;//是新增还是 编辑   null则是新增
	private String addCheckTime;//提交产品部领导审核的时间 
	private String addSaleCheckTime;//提交销售部领导审核时间
	private String checkFirstFailReason;//产品部领导审核失败原因
	private String checkFailReason;//销售领导审核失败原因
	
	private String pLabel;//产品标签
	@DateTimeFormat(pattern="yyyy-MM-dd")
	private Date pRaiseTime;//产品募集开始时间
	
	private String pLetter;//产品确认函
	private String pNotice;//产品成立公告
	@DateTimeFormat(pattern="yyyy-MM-dd")
	private Date pLetterTime;//产品确认函时间
	@DateTimeFormat(pattern="yyyy-MM-dd")
	private Date pNoticeTime;//产品成立公告时间
	private String pSeries;//产品系列
	private String pXcxSerarnoKeyword;//小程序搜索未果记录关键字名称

	public Integer getTarget() {
		return target;
	}

	public void setTarget(Integer target) {
		this.target = target;
	}
	
	public Integer getId() {
		return id;
	}

	public void setId(Integer id) {
		this.id = id;
	}

	public String getpCode() {
		return pCode;
	}

	public void setpCode(String pCode) {
		this.pCode = pCode;
	}

	public String getpName() {
		return pName;
	}

	public void setpName(String pName) {
		this.pName = pName;
	}

	public String getpFullName() {
		return pFullName;
	}

	public void setpFullName(String pFullName) {
		this.pFullName = pFullName;
	}

	public String getpType() {
		return pType;
	}

	public void setpType(String pType) {
		this.pType = pType;
	}


	public BigDecimal getpIssuingScale() {
		return pIssuingScale;
	}

	public void setpIssuingScale(BigDecimal pIssuingScale) {
		this.pIssuingScale = pIssuingScale;
	}

	public BigDecimal getpMinimumAmount() {
		return pMinimumAmount;
	}

	public void setpMinimumAmount(BigDecimal pMinimumAmount) {
		this.pMinimumAmount = pMinimumAmount;
	}

	public Integer getpDueTime() {
		return pDueTime;
	}

	public void setpDueTime(Integer pDueTime) {
		this.pDueTime = pDueTime;
	}

	public BigDecimal getpExpectSubscriptionAmount() {
		return pExpectSubscriptionAmount;
	}

	public void setpExpectSubscriptionAmount(BigDecimal pExpectSubscriptionAmount) {
		this.pExpectSubscriptionAmount = pExpectSubscriptionAmount;
	}

	public String getpLevel() {
		return pLevel;
	}

	public void setpLevel(String pLevel) {
		this.pLevel = pLevel;
	}

	public BigDecimal getpExpectSubscriptionShare() {
		return pExpectSubscriptionShare;
	}

	public void setpExpectSubscriptionShare(BigDecimal pExpectSubscriptionShare) {
		this.pExpectSubscriptionShare = pExpectSubscriptionShare;
	}

	public BigDecimal getpRealSubscriptionAmount() {
		return pRealSubscriptionAmount;
	}

	public void setpRealSubscriptionAmount(BigDecimal pRealSubscriptionAmount) {
		this.pRealSubscriptionAmount = pRealSubscriptionAmount ;
	}

	public BigDecimal getpRealSubscriptionShare() {
		return pRealSubscriptionShare;
	}

	public void setpRealSubscriptionShare(BigDecimal pRealSubscriptionShare) {
		this.pRealSubscriptionShare = pRealSubscriptionShare;
	}

	public String getpInvestType() {
		return pInvestType;
	}

	public void setpInvestType(String pInvestType) {
		this.pInvestType = pInvestType;
	}

	public String getpProjectOwner() {
		return pProjectOwner;
	}

	public void setpProjectOwner(String pProjectOwner) {
		this.pProjectOwner = pProjectOwner;
	}

	public String getpInvestOwner() {
		return pInvestOwner;
	}

	public void setpInvestOwner(String pInvestOwner) {
		this.pInvestOwner = pInvestOwner;
	}

	public Date getpSaleTimeStart() {
		return pSaleTimeStart;
	}

	public void setpSaleTimeStart(Date pSaleTimeStart) {
		this.pSaleTimeStart = pSaleTimeStart;
	}

	public String getpSaleStatus() {
		return pSaleStatus;
	}

	public void setpSaleStatus(String pSaleStatus) {
		this.pSaleStatus = pSaleStatus;
	}

	public String getpFrequencyOpen() {
		return pFrequencyOpen;
	}

	public void setpFrequencyOpen(String pFrequencyOpen) {
		this.pFrequencyOpen = pFrequencyOpen;
	}

	public String getpInstructionsWork() {
		return pInstructionsWork;
	}

	public void setpInstructionsWork(String pInstructionsWork) {
		this.pInstructionsWork = pInstructionsWork;
	}

	public String getpPaymentInterestType() {
		return pPaymentInterestType;
	}

	public void setpPaymentInterestType(String pPaymentInterestType) {
		this.pPaymentInterestType = pPaymentInterestType;
	}

	public String getpSummary() {
		return pSummary;
	}

	public void setpSummary(String pSummary) {
		this.pSummary = pSummary;
	}

	public String getpEndEarlyIdentification() {
		return pEndEarlyIdentification;
	}

	public void setpEndEarlyIdentification(String pEndEarlyIdentification) {
		this.pEndEarlyIdentification = pEndEarlyIdentification;
	}

	public BigDecimal getpProgressiveAmount() {
		return pProgressiveAmount;
	}

	public void setpProgressiveAmount(BigDecimal pProgressiveAmount) {
		this.pProgressiveAmount = pProgressiveAmount;
	}

	public String getStatus() {
		return status;
	}

	public void setStatus(String status) {
		this.status = status;
	}

	public String getpPublicStatus() {
		return pPublicStatus;
	}

	public void setpPublicStatus(String pPublicStatus) {
		this.pPublicStatus = pPublicStatus;
	}

	public Date getpEstablishmentTime() {
		return pEstablishmentTime;
	}

	public void setpEstablishmentTime(Date pEstablishmentTime) {
		this.pEstablishmentTime = pEstablishmentTime;
	}

	public Date getpSaleTimeEnd() {
		return pSaleTimeEnd;
	}

	public void setpSaleTimeEnd(Date pSaleTimeEnd) {
		this.pSaleTimeEnd = pSaleTimeEnd;
	}

	public String getpSaleTimeStartStr() {
		return pSaleTimeStartStr;
	}

	public void setpSaleTimeStartStr(String pSaleTimeStartStr) {
		this.pSaleTimeStartStr = pSaleTimeStartStr;
		SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
		try {
			this.pSaleTimeStart = sdf.parse(pSaleTimeStartStr);
		} catch (ParseException e) {
			Log.error("format date error");
		}
	}

	public String getpSaleTimeEndStr() {
		return pSaleTimeEndStr;
	}

	public void setpSaleTimeEndStr(String pSaleTimeEndStr) {
		this.pSaleTimeEndStr = pSaleTimeEndStr;
		SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
		try {
			this.pSaleTimeEnd = sdf.parse(pSaleTimeEndStr);
		} catch (ParseException e) {
			Log.error("format date error");
		}
	}

	public String getpEstablishmentTimeStr() {
		return pEstablishmentTimeStr;
	}
	
	public BigDecimal getpAllSubscriptionAmount() {
		return pAllSubscriptionAmount;
	}

	public void setpAllSubscriptionAmount(BigDecimal pAllSubscriptionAmount) {
		this.pAllSubscriptionAmount = pAllSubscriptionAmount;
	}

	public Integer getpAllSubscriptionNum() {
		return pAllSubscriptionNum;
	}

	public void setpAllSubscriptionNum(Integer pAllSubscriptionNum) {
		this.pAllSubscriptionNum = pAllSubscriptionNum;
	}

	public void setpEstablishmentTimeStr(String pEstablishmentTimeStr) {
		this.pEstablishmentTimeStr = pEstablishmentTimeStr;
		SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss");
		try {
			this.pEstablishmentTime = sdf.parse(pEstablishmentTimeStr);
		} catch (ParseException e) {
			Log.error("format date error");
		}
	}

	public String getpProductSummary() {
		return pProductSummary;
	}

	public void setpProductSummary(String pProductSummary) {
		this.pProductSummary = pProductSummary;
	}

	public String getpProfitType() {
		return pProfitType;
	}

	public void setpProfitType(String pProfitType) {
		this.pProfitType = pProfitType;
	}

	public String getpPublicArea() {
		return pPublicArea;
	}

	public void setpPublicArea(String pPublicArea) {
		this.pPublicArea = pPublicArea;
	}

	public String getEditorValue() {
		return editorValue;
	}

	public void setEditorValue(String editorValue) {
		this.editorValue = editorValue;
		this.pSummary = editorValue;
	}

	public String getpRecruitmentSummary() {
		return pRecruitmentSummary;
	}

	public void setpRecruitmentSummary(String pRecruitmentSummary) {
		this.pRecruitmentSummary = pRecruitmentSummary;
	}

	public String getpAboutGuarantor() {
		return pAboutGuarantor;
	}

	public void setpAboutGuarantor(String pAboutGuarantor) {
		this.pAboutGuarantor = pAboutGuarantor;
	}

	public String getpAboutFinancingParty() {
		return pAboutFinancingParty;
	}

	public void setpAboutFinancingParty(String pAboutFinancingParty) {
		this.pAboutFinancingParty = pAboutFinancingParty;
	}

	public String getpImageUri() {
		return pImageUri;
	}

	public void setpImageUri(String pImageUri) {
		this.pImageUri = pImageUri;
	}

	public Integer getpInvestOwnerId() {
		return pInvestOwnerId;
	}

	public void setpInvestOwnerId(Integer pInvestOwnerId) {
		this.pInvestOwnerId = pInvestOwnerId;
	}

	public String getUpdateDateStart() {
		return updateDateStart;
	}

	public void setUpdateDateStart(String updateDateStart) {
		this.updateDateStart = updateDateStart;
	}

	public String getUpdateDateEnd() {
		return updateDateEnd;
	}

	public void setUpdateDateEnd(String updateDateEnd) {
		this.updateDateEnd = updateDateEnd;
	}

	public String getpSizeRatioType() {
		return pSizeRatioType;
	}

	public void setpSizeRatioType(String pSizeRatioType) {
		this.pSizeRatioType = pSizeRatioType;
	}

	public String getpSizeRatioExplain() {
		return pSizeRatioExplain;
	}

	public void setpSizeRatioExplain(String pSizeRatioExplain) {
		this.pSizeRatioExplain = pSizeRatioExplain;
	}

	public Integer getpAccessId() {
		return pAccessId;
	}

	public void setpAccessId(Integer pAccessId) {
		this.pAccessId = pAccessId;
	}

	public String getpPeriods() {
		return pPeriods;
	}

	public void setpPeriods(String pPeriods) {
		this.pPeriods = pPeriods;
	}

	public String getpAccessCompany() {
		return pAccessCompany;
	}

	public void setpAccessCompany(String pAccessCompany) {
		this.pAccessCompany = pAccessCompany;
	}

	public String getpAccessName() {
		return pAccessName;
	}

	public void setpAccessName(String pAccessName) {
		this.pAccessName = pAccessName;
	}

	public BigDecimal getpAllIssuingScale() {
		return pAllIssuingScale;
	}

	public void setpAllIssuingScale(BigDecimal pAllIssuingScale) {
		this.pAllIssuingScale = pAllIssuingScale;
	}

	public String getpLinkCode() {
		return pLinkCode;
	}

	public void setpLinkCode(String pLinkCode) {
		this.pLinkCode = pLinkCode;
	}

	public String getpAccessMobile() {
		return pAccessMobile;
	}

	public void setpAccessMobile(String pAccessMobile) {
		this.pAccessMobile = pAccessMobile;
	}

	public String getUserName() {
		return userName;
	}

	public void setUserName(String userName) {
		this.userName = userName;
	}

	public String getpTypeList() {
		return pTypeList;
	}

	public void setpTypeList(String pTypeList) {
		this.pTypeList = pTypeList;
	}

	public String getTjzls() {
		return tjzls;
	}

	public void setTjzls(String tjzls) {
		this.tjzls = tjzls;
	}

	public ProjectExpandDTO getProjectExpandDTO() {
		return projectExpandDTO;
	}

	public void setProjectExpandDTO(ProjectExpandDTO projectExpandDTO) {
		this.projectExpandDTO = projectExpandDTO;
	}

	public String getOutProductId() {
		return outProductId;
	}

	public void setOutProductId(String outProductId) {
		this.outProductId = outProductId;
	}

	public String getOtherInstructions() {
		return otherInstructions;
	}

	public void setOtherInstructions(String otherInstructions) {
		this.otherInstructions = otherInstructions;
	}
	public Boolean getFlagBaoxiao() {
		return flagBaoxiao;
	}

	public void setFlagBaoxiao(Boolean flagBaoxiao) {
		this.flagBaoxiao = flagBaoxiao;
	}

	public Boolean getFlagZhutui() {
		return flagZhutui;
	}

	public void setFlagZhutui(Boolean flagZhutui) {
		this.flagZhutui = flagZhutui;
	}

	public Boolean getFlagZhiding() {
		return flagZhiding;
	}

	public void setFlagZhiding(Boolean flagZhiding) {
		this.flagZhiding = flagZhiding;
	}

	public Boolean getFlagBidding() {
		return flagBidding;
	}

	public void setFlagBidding(Boolean flagBidding) {
		this.flagBidding = flagBidding;
	}

	public String getActivitiesCode() {
		return activitiesCode;
	}

	public void setActivitiesCode(String activitiesCode) {
		this.activitiesCode = activitiesCode;
	}

	public Integer getVideoId() {
		return videoId;
	}

	public void setVideoId(Integer videoId) {
		this.videoId = videoId;
	}

	public String getpSearchName() {
		return pSearchName;
	}

	public void setpSearchName(String pSearchName) {
		this.pSearchName = pSearchName;
	}

	public String getpBelongArea() {
		return pBelongArea;
	}

	public void setpBelongArea(String pBelongArea) {
		this.pBelongArea = pBelongArea;
	}

	public String getpDueTimeDes() {
		return pDueTimeDes;
	}

	public void setpDueTimeDes(String pDueTimeDes) {
		this.pDueTimeDes = pDueTimeDes;
	}

	public String getIds() {
		return ids;
	}

	public void setIds(String ids) {
		this.ids = ids;
	}

	public String getAddFirstProject() {
		return addFirstProject;
	}

	public void setAddFirstProject(String addFirstProject) {
		this.addFirstProject = addFirstProject;
	}

	public String getAddCheckTime() {
		return addCheckTime;
	}

	public void setAddCheckTime(String addCheckTime) {
		this.addCheckTime = addCheckTime;
	}

	public String getAddSaleCheckTime() {
		return addSaleCheckTime;
	}

	public void setAddSaleCheckTime(String addSaleCheckTime) {
		this.addSaleCheckTime = addSaleCheckTime;
	}

	public String getCheckFirstFailReason() {
		return checkFirstFailReason;
	}

	public void setCheckFirstFailReason(String checkFirstFailReason) {
		this.checkFirstFailReason = checkFirstFailReason;
	}

	public String getCheckFailReason() {
		return checkFailReason;
	}

	public void setCheckFailReason(String checkFailReason) {
		this.checkFailReason = checkFailReason;
	}

	public String getpLabel() {
		return pLabel;
	}

	public void setpLabel(String pLabel) {
		this.pLabel = pLabel;
	}

	public Date getpRaiseTime() {
		return pRaiseTime;
	}

	public void setpRaiseTime(Date pRaiseTime) {
		this.pRaiseTime = pRaiseTime;
	}

	public String getpLetter() {
		return pLetter;
	}

	public void setpLetter(String pLetter) {
		this.pLetter = pLetter;
	}

	public String getpNotice() {
		return pNotice;
	}

	public void setpNotice(String pNotice) {
		this.pNotice = pNotice;
	}

	public String getpSeries() {
		return pSeries;
	}

	public void setpSeries(String pSeries) {
		this.pSeries = pSeries;
	}

	public String getpXcxSerarnoKeyword() {
		return pXcxSerarnoKeyword;
	}

	public void setpXcxSerarnoKeyword(String pXcxSerarnoKeyword) {
		this.pXcxSerarnoKeyword = pXcxSerarnoKeyword;
	}

	public Date getpLetterTime() {
		return pLetterTime;
	}

	public void setpLetterTime(Date pLetterTime) {
		this.pLetterTime = pLetterTime;
	}

	public Date getpNoticeTime() {
		return pNoticeTime;
	}

	public void setpNoticeTime(Date pNoticeTime) {
		this.pNoticeTime = pNoticeTime;
	}
	
}
